Java中如何比较两个字符串类型日期的大小 您所在的位置:网站首页 Java 字符串转成日期 Java中如何比较两个字符串类型日期的大小

Java中如何比较两个字符串类型日期的大小

2024-01-02 09:49| 来源: 网络整理| 查看: 265

如何在后台判断两个字符串类型日期的大小

前段时间本人遇到了一个和活动时间有关的需求,需要判断该时间处于哪个时间段内。因为平时判断时间都是在数据库里进行的,对于代码判断日期不太熟悉,所以查看了一些资料,将收集到的方法整理在这里。

compareTo方法

String类中提供了compareTo方法,原理是将字符串转成char[],从char[0]开始进行比较,如果两值不相等,则返回相减的结果。一般将结果与0相比,进行判断,并不关心返回的具体值:

String s1="2020-07-22"; String s2="2020-06-22"; System.out.println(s1.compareTo(s2));//结果:1 System.out.println(s2.compareTo(s1));//结果:-1

这里有几个点需要注意:

两个日期格式必须相同,如 :2020-01-01与2020-05-05。如果格式不同,比如2020/01/01,则可能会影响最终结果。在保证日期格式相同的基础上,有没有时分秒只会影响当年月日相同时的结果: String s1="2020/06/22"; String s2="2020/05/22 13:01:15"; System.out.println(s1.compareTo(s2));//结果:1 String s3="2020/06/22"; String s4="2020/06/22 13:01:15"; System.out.println(s3.compareTo(s4));//结果:-9 SimpleDateFormat类

SimpleDateFormat类想必大家都不陌生,SimpleDateFormat可以通过parse方法,将一个日期类型的字符串,转化成对应的Date型日期。我们就可以对Date进行操作。

compaTo方法 Date同样有compareTo的方法,可以将String通过SimpleDateFormat转化成Date类型,再进行compareTo的判断。当然,这样会比较麻烦,适合一些特点需求。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String now = "2020-01-01"; String end = "2019-01-01"; Date nowDate = sdf.parse(now); Date endDate = sdf.parse(end); System.out.println(nowDate.compareTo(endDate));//结果:1 getTime方法 Date中提供了getTime方法,该方法的返回值是自1970-01-01 00:00:00到指定日期间的毫秒数,返回值类型为long。通过比较毫秒数大小,同样可以比较时间的大小。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); long time1 = sdf.parse("2019-1-1").getTime(); long time2 = sdf.parse("2020-1-1").getTime(); System.out.println(time1>time2);//false

相比之下,String的compareTo方法使用起来则更加的方便。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有